package com.base.cn.platform.os.service.course.count;

import com.base.cn.platform.os.service.FeignAuthConfig;
import com.base.cn.platform.os.service.course.CourseBaseService;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;

import java.util.List;
import java.util.Map;

/**
 * 课程系统接口
 * @author s.li
 * @create 2018-08-24-9:47
 */
@FeignClient(name = CourseBaseService.appName,configuration = FeignAuthConfig.class)
public interface CourseCountService extends CourseBaseService {

    /**
     * 查询课程统计数据
     * @return Map<String, Integer>
     */
    @RequestMapping(contextPath + "/queryCourseCountNum")
    Map<String, Integer> queryCourseCountNum();

    /**
     * 获取视频与录播的数量
     * @return Map<String,Integer>
     */
    @RequestMapping(contextPath + "/queryVideoAndLiveNum")
    public Map<String,Integer> queryVideoAndLiveNum();

    /**
     * 获取96K基本统计数据
     * @return Map<String,Object>
     */
    @RequestMapping(contextPath + "/get96KCountData")
    Map<String,Object> get96KCountData();

    /**
     * 获取96K当月观看流量曲线
     * @return List<Map<String,Object>>
     */
    @RequestMapping(contextPath + "/query96KMonthDataCount")
    List<Map<String,Object>> query96KMonthDataCount(@RequestBody Map<String, String> maps);

    /**
     * 专业/科目观看量 TOP 10
     * @return List<TopSubjectPlayCount>
     */
    @RequestMapping(contextPath + "/queryTopSubjectPlayCount")
    List<Map<String,Object>> queryTopSubjectPlayCount();

    /**
     * 访问量最高的前 10场 直播
     * @return List<ToLiveCount>
     */
    @RequestMapping(contextPath + "/queryToLiveCount")
    List<Map<String,Object>> queryToLiveCount();
}
